package oop;

/**
 * @author: knowno
 * @create: 2025-09-10 15:43
 * @Version 1.0
 **/
public class TestClass2 {

    // 对象 非静态 属性 字段 变量
    String name;

    //类所有 静态属性,所有"对象共享",内存中固定的一段空间
    static  int a = 10;

    //常量
    final  int age =1;

    //代码段
    {
        System.out.println(" common code .");
    }

    static {
        //静态代码段,只执行一次,类加载
        System.out.println(" static code .");
    }

    /**
     * 实例/对象方法
     * @return
     */
    public int showAge(){
        return this.age;
    }

    /**
     * 静态方法,类所有的方法
     */
    public static void show(){
        System.out.println(a);
    }

    /**
     * 构造方法(方法名和类同名,无返回类型)
     */
    TestClass2(){
        System.out.println(" constructor .");
    }


    /**
     * 入口,是一个静态方法
     * @param args
     */
    public static void main(String[] args) throws ClassNotFoundException {

        //是类属性 静态的属性 类名称.属性名
        System.out.println(TestClass2.a);

        TestClass2.a =11;

        TestClass2 testClass2 = new TestClass2();
        //不应该通过类实例访问静态成员
        //但是编译上是可以通过的
        System.out.println(testClass2.a);
        testClass2.a =12;


        //? 多次改变a的值,此时a的值是
        System.out.println(TestClass2.a);


    }
}
